Windows Shellcode 注入
這個專案展示了兩種在 Windows 上的 shellcode 注入方法:自我注入和進程注入。提供的範例顯示了如何使用 Windows API 將 shellcode 注入並執行在進程的記憶體空間中。
免責聲明
這段程式碼僅供教育用途。濫用此程式碼可能會導致嚴重後果。請負責任地使用它,僅在您有權測試的系統上使用。
概述
- 自我注入:在同一個進程內注入並執行 shellcode。
- 進程注入:將 shellcode 注入並執行到遠端進程(例如 mspaint.exe)中。
先決條件
Windows 作業系統( 從 Windows 官方網站下載)
Visual Studio 或任何支援 Windows API 的 C++ 編譯器(從 Visual Studio 下載頁面 下載)
編譯
要編譯這段程式碼,請使用 C++ 編譯器,例如 Visual Studio:
- 在 Visual Studio 中打開專案。
- 確保專案設置為編譯 C++ 應用程式。
- 建置專案。
自我注入
自我注入是指在同一進程內注入並執行 shellcode。提供的範例展示了如何分配記憶體、將 shellcode 寫入記憶體中,並創建一個執行該 shellcode 的執行緒。
程式碼說明
使用方式
- 編譯程式碼。
- 執行編譯後的可執行檔。
- 在同一個進程內,shellcode(顯示一個消息框)將會執行。
進程注入
進程注入是一種將 shellcode 注入並執行到遠端進程中的技術。提供的範例展示了如何找到目標進程(例如 mspaint.exe)、在該進程中分配記憶體、寫入 shellcode,並創建一個遠端執行緒來執行 shellcode。
程式碼說明
- 進程列舉:使用 CreateToolhelp32Snapshot 和 Process32First / Process32Next 來尋找目標進程。
- 記憶體分配:使用 VirtualAllocEx 在目標進程中分配記憶體。
- shellcode 寫入:使用 WriteProcessMemory 將 shellcode 寫入目標進程的記憶體中。
- 執行緒創建:使用 CreateRemoteThread 創建遠端執行緒來執行 shellcode。
使用方式
- 編譯程式碼。
- 確保 mspaint.exe 正在執行。
- 執行編譯後的可執行檔
- 在 mspaint.exe 中,shellcode(顯示一個消息框)將會執行。
Shellcode
- 提供的 shellcode 範例是簡單的消息框:
- 自我注入 shellcode:x86 訊息框 shellcode。
- 進程注入 shellcode:x64 訊息框 shellcode。
注意事項
- 確保目標進程(mspaint.exe)在執行進程注入程式碼之前已經啟動。
- 提供的 shellcode 僅供演示用途,可能需要根據其他使用情況進行調整。
轉載連結:https://github.com/moroii69/custom-malware